//
//  Permissions.h
//  StaffHelper
//
//  Created by 馍馍帝😈 on 16/8/9.
//  Copyright © 2016年 馍馍帝👿. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef enum : NSUInteger {
    PermissionStateAll = 1,
    PermissionStatePart = 2,
    PermissionStateNone = 0,
} PermissionState;

typedef enum : NSUInteger {
    PermissionTypeRead,
    PermissionTypeEdit,
    PermissionTypeDelete,
    PermissionTypeAdd,
} PermissionType;

@interface Permission : NSObject

@property(nonatomic,copy)NSString *readKey;

@property(nonatomic,assign)PermissionState readState;

@property(nonatomic,assign)PermissionState addState;

@property(nonatomic,assign)PermissionState editState;

@property(nonatomic,assign)PermissionState deleteState;

+(instancetype)cardPermission;

+(instancetype)personalCardPermission;

+(instancetype)giftCardPermission;

+(instancetype)userPermission;

+(instancetype)personalUserPermission;

+(instancetype)studioPermission;

+(instancetype)staffPermission;

+(instancetype)coachPermission;

+(instancetype)cardKindPermission;

+(instancetype)groupArrangePermission;

+(instancetype)groupPermission;

+(instancetype)groupOrderPermission;

+(instancetype)privatePermission;

+(instancetype)privateOrderPermission;

+(instancetype)privateArrangePermission;

+(instancetype)courseOrderPermission;

+(instancetype)personalCourseOrderPermission;

+(instancetype)checkinPermission;

+(instancetype)checkinListPermission;

+(instancetype)personalCheckinListPermission;

+(instancetype)checkinSettingPermssion;

+(instancetype)activitySettingPermission;

+(instancetype)productPermission;

+(instancetype)productInventoryPermission;

+(instancetype)productReportPermission;

+(instancetype)lockerPermission;

+(instancetype)courseReportPermission;

+(instancetype)cardReportPermission;

+(instancetype)sellReportPermission;

+(instancetype)orderReportPermission;

+(instancetype)personalOrderReportPermission;

+(instancetype)personalSellReportPermission;

+(instancetype)commentsReport;

+(instancetype)permissionPermission;

+(instancetype)messagePermission;

+(instancetype)messageDetailsPermission;

+(instancetype)messageChannelsPermission;

+(instancetype)measureSettingPermission;

+(instancetype)coursePlansSettingPermission;

+(instancetype)wechatSettingPermission;

+(instancetype)noticePermission;

+(instancetype)billPermission;

+(instancetype)paySettingPermission;

+(instancetype)advertisementPermission;

+(instancetype)koubeiPermission;

+(instancetype)checkinReportPermission;

+(instancetype)integralPermission;

+(instancetype)integralRankPermission;

+(instancetype)groupLimitPermission;

+(instancetype)groupMessagePermission;

+(instancetype)privateLimitPermission;

+(instancetype)privateMessagePermission;

+(instancetype)staffPositionPermission;

+(instancetype)coachPositionPermission;

+(instancetype)spacePermission;

+(instancetype)homepagePermission;

+(instancetype)checkinLockerPermission;

+(instancetype)checkinScreenPermission;

+(instancetype)cardbalancePermission;

+(instancetype)userExportPermission;

+(instancetype)userImportPermission;

+(instancetype)cardExportPermission;

+(instancetype)cardImportPermission;

@end

@interface Permissions : NSObject

@property(nonatomic,strong)Permission *cardPermission;

@property(nonatomic,strong)Permission *personalCardPermission;

@property(nonatomic,strong)Permission *giftCardPermission;

@property(nonatomic,strong)Permission *userPermission;

@property(nonatomic,strong)Permission *personalUserPermission;

@property(nonatomic,strong)Permission *studioPermission;

@property(nonatomic,strong)Permission *staffPermission;

@property(nonatomic,strong)Permission *coachPermission;

@property(nonatomic,strong)Permission *cardKindPermission;

@property(nonatomic,strong)Permission *groupArrangePermission;

@property(nonatomic,strong)Permission *groupPermission;

@property(nonatomic,strong)Permission *groupOrderPermission;

@property(nonatomic,strong)Permission *privatePermission;

@property(nonatomic,strong)Permission *privateOrderPermission;

@property(nonatomic,strong)Permission *privateArrangePermission;

@property(nonatomic,strong)Permission *courseOrderPermission;

@property(nonatomic,strong)Permission *personalCourseOrderPermission;

@property(nonatomic,strong)Permission *checkinPermission;

@property(nonatomic,strong)Permission *checkinListPermission;

@property(nonatomic,strong)Permission *personalCheckinListPermission;

@property(nonatomic,strong)Permission *checkinSettingPermssion;

@property(nonatomic,strong)Permission *activitySettingPermission;

@property(nonatomic,strong)Permission *productPermission;

@property(nonatomic,strong)Permission *productInventoryPermission;

@property(nonatomic,strong)Permission *productReportPermission;

@property(nonatomic,strong)Permission *lockerPermission;

@property(nonatomic,strong)Permission *courseReportPermission;

@property(nonatomic,strong)Permission *cardReportPermission;

@property(nonatomic,strong)Permission *sellReportPermission;

@property(nonatomic,strong)Permission *orderReportPermission;

@property(nonatomic,strong)Permission *personalOrderReportPermission;

@property(nonatomic,strong)Permission *personalSellReportPermission;

@property(nonatomic,strong)Permission *commentsReport;

@property(nonatomic,strong)Permission *permissionPermission;

@property(nonatomic,strong)Permission *messagePermission;

@property(nonatomic,strong)Permission *messageDetailsPermission;

@property(nonatomic,strong)Permission *messageChannelsPermission;

@property(nonatomic,strong)Permission *measureSettingPermission;

@property(nonatomic,strong)Permission *coursePlansSettingPermission;

@property(nonatomic,strong)Permission *wechatSettingPermission;

@property(nonatomic,strong)Permission *noticePermission;

@property(nonatomic,strong)Permission *billPermission;

@property(nonatomic,strong)Permission *paySettingPermission;

@property(nonatomic,strong)Permission *advertisementPermission;

@property(nonatomic,strong)Permission *koubeiPermission;

@property(nonatomic,strong)Permission *checkinReportPermission;

@property(nonatomic,strong)Permission *integralPermisson;

@property(nonatomic,strong)Permission *integralRankPermission;

@property(nonatomic,strong)Permission *groupLimitPermission;

@property(nonatomic,strong)Permission *groupMessagePermission;

@property(nonatomic,strong)Permission *privateLimitPermission;

@property(nonatomic,strong)Permission *privateMessagePermission;

@property(nonatomic,strong)Permission *staffPositionPermission;

@property(nonatomic,strong)Permission *coachPositionPermission;

@property(nonatomic,strong)Permission *spacePermission;

@property(nonatomic,strong)Permission *homepagePermission;

@property(nonatomic,strong)Permission *checkinLockerPermission;

@property(nonatomic,strong)Permission *checkinScreenPermission;

@property(nonatomic,strong)Permission *cardbalancePermission;

@property(nonatomic,strong)Permission *userExportPermission;

@property(nonatomic,strong)Permission *userImportPermission;

@property(nonatomic,strong)Permission *cardExportPermission;

@property(nonatomic,strong)Permission *cardImportPermission;

@property(nonatomic,strong)NSMutableArray *permissions;

@end
